﻿
<?php

session_start();
header("Content-Type: text/html; charset=utf-8");
include_once( 'config.php' );
include_once( 'weibooauth.php' );



//**************用某个用户的固定token取数据**********************
$a = "707f5c6e978c5cb39e1d883ba9e2705c";
$b = "ec7011db857771d5fdf72530303c9bcb";
$c = new WeiboClient( WB_AKEY , WB_SKEY , $a , $b  );
//**************用某个用户的固定token取数据**********************

//$c = new WeiboClient( WB_AKEY , WB_SKEY , $_SESSION['last_key']['oauth_token'] , $_SESSION['last_key']['oauth_token_secret']  );
$ms  = $c->home_timeline(); // done,   mike：选择类的某个出来方法，本行选择是timeline函授
$me = $c->verify_credentials();

//print_r($ms);  测试使用
echo $me['name'] ."你好~ 要换头像么?";

//××××××××××××××××校验用户列表是否有该用户，若没有就添加一条记录。××××××××××××××××××××××××××××××××
	$name=$me['name']; //由于不能直接用右边的内容，所以用了个变量作为中介。
	$id=$me['id']; 

$con = mysql_connect("localhost", "root","");   
mysql_query("SET NAMES utf8");   //下面3行是解决sql写入写出显示乱码的，详细见http://wenwen.soso.com/z/q104200853.htm
mysql_query("SET CHARACTER SET utf8");
mysql_query("SET COLLATION_CONNECTION='utf8_general_ci'");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }
  mysql_select_db("movie3", $con);      //先选择数据库

/*
 $sql = "SELECT * FROM user WHERE weibo_id='$id'";
 $result = mysql_query($sql,$con);         //执行上面一行的sql
 
 if (mysql_num_rows($result))              //判断是否该用户id存在，即是否有结果记录
  {
  echo "帐号已注册";
  }
  else
   {
  $sql = "INSERT INTO user (weibo_id, name)     
VALUES ( '$id', '$name' )" ;               //若不存在插入用户id
  }
mysql_query($sql,$con); //执行上面语句
*/
//××××××××××××××××校验用户列表是否有该用户，若没有就添加一条记录。××××××××××××××××××××××××××××××××


			
					



//start ××××××××××从数据的电影表，获取电影关键字,放入到临时数组×××××××××××××××××××××××

 $sql = "SELECT * FROM movie WHERE endtime  > unix_timestamp() and hot_set=0 " ;  // 根据“下影时间” 和 new标记位（下影时间晚于当天）过滤出所有电影数据 
 $result = mysql_query($sql,$con);         //执行上面一行的sql
 
 
  if ( !mysql_num_rows($result) )                   //判断是否有未刷新数据，若为空，就把它全部置0
     {
	  $sql = "UPDATE  movie  SET hot_set=0  where endtime > CURDATE()"; 
	  $result = mysql_query($sql,$con);
	  exit;
	 }
 
  
	 $i=0;
	while( $row=mysql_fetch_array($result) )   //循环取查询结果的每行数据
	{
	  $rows_keyword[$i]=$row;
	  echo "<br/>测试显示电影名" .$rows_keyword[$i][title] ;    //结果为多维数组
	  $i++;
	  $j=$i;  	 //把关键字的个数传递给 变量j，以便后续循环使用
	}
//end×××××××××××从数据的电影表，获取电影关键字,放入到临时数组××××××××××××××××××





/* START××××××××××××××××××××××××× 循环 获取“最热”数据，并写如数据库 ×××××××××××××××××××××× */ 

	//mysql_query("TRUNCATE   TABLE comment_hot",$con);  //删除表的内容,测试阶段使用
	for( $i=0; $i<=$j; $i++)   // 从搜索关键字数组里关键字的个数，启动相应次数的循环。
	{	
		$movie_id = $rows_keyword[$i][id];
		$sql = " UPDATE  movie  SET hot_set=1  where id=$movie_id "; //刷新 标记位，“1”表示已刷新
		$result = mysql_query($sql,$con);
	    //echo mysql_num_rows($result). "--23423423423";
	    
		$keyword = $rows_keyword[$i][keyword]; //从搜索关键字数组取值
	 	$search = $c->search( $keyword, 20, 4 );   // 过滤器选择4，表示只取带有“转发”的微博
		//echo print_r($search); exit; 
		if( !is_array( $search ) )  { echo "-----你可能还没有登录，所有看不到数据-----"; exit; }   //做个判断，看是否调用到接口数据
			foreach( $search as $item )  //从timeline逐条读出微博
			{  //echo $keyword. "123"."</br>"   ;
				    if( strpos( $item[retweeted_status][text], $keyword ) == 0 ) // 若没有该关键字就跳出循环一次。
					 {
					 	continue;
					 }
				//	else
					{ 
				    $sql = "SELECT * FROM comment_hot WHERE  weibo_id='$item[retweeted_status][id]' " ;    //若有关键字，就用该微博id与数据库比较一下，看是否已经有该微博。
					$result = mysql_query($sql,$con);   
					if ( mysql_num_rows($result) )      //有相同id存在就不写入数据库
							{ }
							else   //若没有该微博，就执行写操作，把该条微博写入数据库。
							{   										
							//因为二位数组在sql赋值有问题，所以通过变量进行中转。
							$create_time = date("Y-m-d H:i:s", strtotime($item[retweeted_status][created_at], time())); // 把从微博获取的时间格式转为timestamp，再转为合适的时间格式
							$movie_id = $rows_keyword[$i][id]; 				 				// 电影id
							$text = $item[retweeted_status][text];  								//微博内容
							$weibo_id = $item[retweeted_status][id];       		 					//微博id
							$source = $item[retweeted_status][source];								//来源
							$user_id = $item[retweeted_status][user][id];								//用户id
							$user_name = $item[retweeted_status][user][name];							//用户名
							$user_url = "http://t.sina.com.cn/".$item[retweeted_status][user][id];		//用户url
							$user_profile_image = $item[retweeted_status][user][profile_image_url];		//用户头像
							
							$thumbnail_pic =  $item[retweeted_status][thumbnail_pic];		//微博图片，小
							$bmiddle_pic =   $item[retweeted_status][bmiddle_pic];			//微博图片，中
							$original_pic =  $item[retweeted_status][original_pic]; 			//微博图片，原始
							
							//echo "测试这个数据".$item[retweeted_status][bmiddle_pic] . "</br>";
							
							$sql = "INSERT INTO comment_hot ( movie_id, created_at, text, weibo_id, reflash_time, source, user_id, user_name, user_url, profile_image_url, thumbnail_pic, bmiddle_pic, original_pic  )     
					VALUES ( '$movie_id', '$create_time', '$text',  '$weibo_id', now(), '$source', '$user_id', '$user_name', '$user_url', '$user_profile_image', '$thumbnail_pic', '$bmiddle_pic', '$original_pic' )" ;  //本句未写入，把含关键字的微博写入表 //待补充，这里需补充一个判断，若有retweeted_id的值存在，则把retweeted值置为1，否则为0 
								
						
						
							//在插入数据前，还要做一个判断：判断当前微博内容与数据库的微博内容的相似度
							$sql2 = "select * from comment_hot where movie_id=$movie_id " ;  //避免与sql重复，所以新建sql2变量
							$result = mysql_query($sql2,$con);
							if (mysql_num_rows($result) ==0 ) { mysql_query($sql,$con);  continue;} //若没有数据库没有数据，即写入后进入下一个S
							  
							$k = 0;
								while($row = mysql_fetch_assoc($result))	 
								 {   $k++;
									 similar_text( $text, $row[text], $percent );   //
									 echo  $percent;
									 if ( $percent > 50 )                            //如果S1与T1相似(S1表示searh的第一个，T1表示表第一个)             
										{
											if ( $create_time < $row[creat_time] )   		//就比较S1与T1的创建时间，若果S1比T1早
											{
												mysql_query("delete * from comment_hot where weibo_id=$row[weibo_id]");	 //1）把T1删除  
												mysql_query($sql,$con);         //2）把S1写入表           
												break;
											}
											else { break; }  				      //跳出循环，进入S2
										
										} 
									  else 											//不相似
										{ 
											if ( mysql_num_rows($result) != $k )  // 如果不是T的最后一条，继续循环
											{continue; }
											mysql_query($sql,$con);   //若已到最后一条，插入数据
										}    					
								  }	
										   					
							}
					}	
							
			} 
			
	//print_r($search); exit; //测试内容	

		break;         //页面每次只执行一个电影			 	
	}
	
	
	
	
$sql = "select * from comment_hot ";
	$result = mysql_query($sql,$con);
	//echo  "123".mysql_num_rows($result);
			while($row = mysql_fetch_assoc($result))
				{
				//echo " 。。。测试电影：....".$row['movie_id']."...".$row['text']."</br>";  
				//  var_dump($row); //测试用，打印数据 
				}
			//	exit;		
	


/* END ××××××××××××××××××××××××× 循环 获取最热数据，并写如数据库 ×××××××××××××××××××××× */





mysql_close($con); ?> 






